This invention relates to a rule-based expert system, and more particularly to a hardware implemented rule-based expert system suitable for performing high speed inferencing in artificial intelligence (AI) applications.
Expert systems are a class of computer programs that incorporate artificial intelligence (AI) technology to address problems normally thought to require human experts or specialists. In a rule-based expert system, expert knowledge in a particular application domain is represented in the form of a series of rules, "production rules". In the operation of a typical expert system the user, through a convenient user interface, supplies the expert system with certain known information about a particular problem, and the expert system applies the production rules to this known information to deduce facts and solve problems pertaining to the application domain. For further background information pertaining to expert systems, reference is made to the following articles: Robert H. Michaelsen, et al., "The Technology of Expert Systems", Byte Magazine, April 1985, pp. 308-312; Beverly A. Thompson, et al., "Inside an Expert System", Byte Magazine, April 1985, pp. 315-330; Michael F. Deering, "Architectures for AI", Byte Magazine, April 1985, pp. 193-206.
Successful expert systems have been developed for a number of application domains: for making medical diagnoses, for identifying organic compounds, for selecting oil drilling muds, and so forth. Additionally, a number of domain-independent expert system shells in software form have been developed to facilitate building rule-based expert systems for specific application domains. Several commercially available expert system tools are described in the above-noted articles. Typically, these expert systems and expert system tools are in the form of software programs designed to run on a general purpose computer or microcomputer. The software program provides an interactive session between the user and the expert system in which the expert system asks questions of the user and employs its expert knowledge base to solve problems and provide advice to the user.
There has been considerable interest in expanding the use of expert systems into other practical applications, and especially in developing expert systems capable of use in real-time applications. Such systems would be useful, for example as a control system for various applications, such as manufacturing processes, process control, guidance systems, robotics, etc. However, a major limitation in the development of complex, real-time AI systems is the speed of computation. In order to make effective practical use of artificial intelligence technology the efficiency and speed of computation must be increased.
Significant efforts have been made to improve the speed of AI processing by improving and streamlining the software tools used in AI processing, such as the AI languages. It has also been recognized that performance improvements can be achieved by custom designed hardware specifically engineered for artificial intelligence processing. As indicated in the Deering article noted above, one approach with respect to hardware architectural improvements has involved refinements in the processor's instruction set to allow the processor to operate more quickly. Attention has also been given to developing parallel processing architectures which would allow the AI computations to be carried out in parallelism. The article also notes that custom VLSI hardware could be employed to accelerate particular operations such as matching and fetching, parallel-processor communication and signal-to-symbol processing.